An echo in a 2-wire communications system may be defined as that part of a transmitted signal at a particular location which is reflected back and received along with the incoming signal at that particular location. This form of distortion is an inherent problem in 2-wire duplex communications systems which principally aries from an unavoidable impedance mismatch at the hybrid transformer which interfaces the 2-wire communications path. For purposes of this application, the term "wire" is meant to encompass any conductive signal path in which an undesirable echo is present.
An echo has both a linear and a nonlinear component. In data system applications, the amount of echo cancellation required varies directly with the data speed and a myriad of other factors. Echo cancellers are devices which have long been used to cancel or substantially obliterate an error-producing echo. Many of such devices are effective for only eliminating the linear component of the echo while others are useful for cancelling both the linear and nonlinear components of an echo. In certain data applications, e.g., voiceband modems having data rates less than 9600 bits/sec, cancellation of the linear component alone provides a sufficient signal-to-residual echo ratio to meet performance objectives. However, as the data speed is increased, cancellation of the nonlinear component of the echo is necessary if the required signal-to-residual echo ratio is to be attained.
One type of echo canceller suitable for cancelling both the linear and nonlinear components of an echo is referred to as an overlapping look-up-and-add canceller. See, for example, U.S. Pat. No. 4,792,915 to Adams et al., issued Dec. 20, 1988, which is incorporated herein by reference. In an overlapping look-up-and-add structure, the cancellation provided is a function of a plurality of successively transmitted data symbols. More specifically, a different symbol in the plurality of transmitted symbols and one or both of the symbols immediately adjacent to each different symbol are used as an address to an associated memory. The echo cancellation provided by such a structure is the sum of the associated memory outputs and may be fixed for a given sequence of symbols or may be adaptive. In an adaptive overlapping look-up-and-add structure, the values stored in memory for a given sequence of symbols are updated over time in order to optimize the echo cancellation in a given application. Tis updating of the stored values is quantified by a parameter known as the convergence time. Convergence time, which is directly proportional to the size of the memory, is defined as the time required for the stored values in memory to migrate to values which optimize the echo cancellation in the given application.
While prior art fixed and adaptive overlapping look-up-and-add cancelers theoretically provide satisfactory echo cancellation, the required memory size often renders implementation in a given system impractical. Another shortcoming of these echo cancellers is that in an adaptive overlapping look-up-and-add canceller, the convergence time also does not meet the desired objectives.
In light of the foregoing, it would be extremely desirable if an echo canceller cold be devised which compensates for both the linear and nonlinear components using a structure which is readily implementable using significantly less memory than that previously required and possesses a desirable convergence time.